/**
 * 
 */
package com.cplsystems.incidencias.vm.catalogos.utils;

import java.util.ArrayList;
import java.util.List;

import com.cplsystems.incidencias.app.MetaData;
import com.cplsystems.incidencias.business.EstadoCivil;
import com.cplsystems.incidencias.business.FormaPago;
import com.cplsystems.incidencias.business.Idiomas;
import com.cplsystems.incidencias.business.NivelAcademico;
import com.cplsystems.incidencias.business.Servicios;
import com.cplsystems.incidencias.business.TipoDocumentoCalidad;
import com.cplsystems.incidencias.business.TipoIncidencia;
import com.cplsystems.incidencias.business.TipoNomina;
import com.cplsystems.incidencias.utils.catalogs.Catalogos;

/**
 * @author César Palalía López (csr.plz@aisa-automation.com)
 * 
 */
public class CatalogosVariables extends MetaData {

	private static final long serialVersionUID = 2770800409496157645L;

	protected List<EstadoCivil> estadosCiviles;
	protected EstadoCivil estadoCivilSeleccionado;

	protected List<NivelAcademico> nivelesAcademicos;
	protected NivelAcademico nivelAcademicoSeleccionado;

	protected List<FormaPago> formasPago;
	protected FormaPago formaPagoSeleccionada;

	protected List<Idiomas> listaIdiomas;
	protected Idiomas idiomaSeleccionado;

	protected List<TipoDocumentoCalidad> tiposDocumentos;
	protected TipoDocumentoCalidad tipoDocumentoSeleccionado;

	protected List<TipoIncidencia> tiposIncidencias;
	protected TipoIncidencia tipoIncidenciaSeleccionada;

	protected List<String> catalogoTiempoIncidencias = new ArrayList<String>();
	protected String catalogoTiempoIncidenciaSeleccionada;

	protected List<String> catalogoIMSSIncidencias = new ArrayList<String>();
	protected String catalogoIMSSIncidenciaSeleccionada;

	protected List<TipoNomina> tiposNominas;
	protected TipoNomina tipoNominaSeleccionada;

	protected List<Servicios> servicios;
	protected Servicios servicioSeleccionado;

	public void init() {
		estadosCiviles = estadoCivilService.getAll();
		estadoCivilSeleccionado = estadosCiviles != null ? estadosCiviles
				.get(0) : new EstadoCivil();

		nivelesAcademicos = nivelAcademicoService.getAll();
		nivelAcademicoSeleccionado = nivelesAcademicos != null ? nivelesAcademicos
				.get(0) : new NivelAcademico();

		formasPago = formaPagoService.getAll();
		formaPagoSeleccionada = formasPago != null ? formasPago.get(0)
				: new FormaPago();

		listaIdiomas = idiomasService.getAll();
		idiomaSeleccionado = idiomas != null ? listaIdiomas.get(0)
				: new Idiomas();

		tiposDocumentos = tipoDocumentoCalidadService.getAll();
		tipoDocumentoSeleccionado = tiposDocumentos != null ? tiposDocumentos
				.get(0) : new TipoDocumentoCalidad();

		tiposIncidencias = tipoIncidenciaService.getAll();
		tipoIncidenciaSeleccionada = tiposIncidencias != null ? tiposIncidencias
				.get(0) : new TipoIncidencia();

		catalogoTiempoIncidencias = Catalogos.TIPO_INCIDENCIA_TIEMPO;
		catalogoTiempoIncidenciaSeleccionada = catalogoTiempoIncidencias.get(0);

		catalogoIMSSIncidencias = Catalogos.TIPO_INCIDENCIA_IMSS;
		catalogoIMSSIncidenciaSeleccionada = catalogoIMSSIncidencias.get(0);

		tiposNominas = tipoNominaService.getAll();
		tipoNominaSeleccionada = tiposNominas != null ? tiposNominas.get(0)
				: new TipoNomina();
		servicioSeleccionado = servicios != null ? servicios.get(0)
				: new Servicios();
		servicios = servicioService.getAll();
		if (servicios == null) {
			servicios = new ArrayList<Servicios>();
			servicios.add(servicioSeleccionado);
		}

	}

	public List<EstadoCivil> getEstadosCiviles() {
		return estadosCiviles;
	}

	public void setEstadosCiviles(List<EstadoCivil> estadosCiviles) {
		this.estadosCiviles = estadosCiviles;
	}

	public EstadoCivil getEstadoCivilSeleccionado() {
		return estadoCivilSeleccionado;
	}

	public void setEstadoCivilSeleccionado(EstadoCivil estadoCivilSeleccionado) {
		this.estadoCivilSeleccionado = estadoCivilSeleccionado;
	}

	public List<NivelAcademico> getNivelesAcademicos() {
		return nivelesAcademicos;
	}

	public void setNivelesAcademicos(List<NivelAcademico> nivelesAcademicos) {
		this.nivelesAcademicos = nivelesAcademicos;
	}

	public NivelAcademico getNivelAcademicoSeleccionado() {
		return nivelAcademicoSeleccionado;
	}

	public void setNivelAcademicoSeleccionado(
			NivelAcademico nivelAcademicoSeleccionado) {
		this.nivelAcademicoSeleccionado = nivelAcademicoSeleccionado;
	}

	public List<FormaPago> getFormasPago() {
		return formasPago;
	}

	public void setFormasPago(List<FormaPago> formasPago) {
		this.formasPago = formasPago;
	}

	public FormaPago getFormaPagoSeleccionada() {
		return formaPagoSeleccionada;
	}

	public void setFormaPagoSeleccionada(FormaPago formaPagoSeleccionada) {
		this.formaPagoSeleccionada = formaPagoSeleccionada;
	}

	public List<Idiomas> getListaIdiomas() {
		return listaIdiomas;
	}

	public void setListaIdiomas(List<Idiomas> listaIdiomas) {
		this.listaIdiomas = listaIdiomas;
	}

	public Idiomas getIdiomaSeleccionado() {
		return idiomaSeleccionado;
	}

	public void setIdiomaSeleccionado(Idiomas idiomaSeleccionado) {
		this.idiomaSeleccionado = idiomaSeleccionado;
	}

	public List<TipoDocumentoCalidad> getTiposDocumentos() {
		return tiposDocumentos;
	}

	public void setTiposDocumentos(List<TipoDocumentoCalidad> tiposDocumentos) {
		this.tiposDocumentos = tiposDocumentos;
	}

	public TipoDocumentoCalidad getTipoDocumentoSeleccionado() {
		return tipoDocumentoSeleccionado;
	}

	public void setTipoDocumentoSeleccionado(
			TipoDocumentoCalidad tipoDocumentoSeleccionado) {
		this.tipoDocumentoSeleccionado = tipoDocumentoSeleccionado;
	}

	public List<TipoIncidencia> getTiposIncidencias() {
		return tiposIncidencias;
	}

	public void setTiposIncidencias(List<TipoIncidencia> tiposIncidencias) {
		this.tiposIncidencias = tiposIncidencias;
	}

	public TipoIncidencia getTipoIncidenciaSeleccionada() {
		return tipoIncidenciaSeleccionada;
	}

	public void setTipoIncidenciaSeleccionada(
			TipoIncidencia tipoIncidenciaSeleccionada) {
		this.tipoIncidenciaSeleccionada = tipoIncidenciaSeleccionada;
	}

	public List<String> getCatalogoTiempoIncidencias() {
		return catalogoTiempoIncidencias;
	}

	public void setCatalogoTiempoIncidencias(
			List<String> catalogoTiempoIncidencias) {
		this.catalogoTiempoIncidencias = catalogoTiempoIncidencias;
	}

	public String getCatalogoTiempoIncidenciaSeleccionada() {
		return catalogoTiempoIncidenciaSeleccionada;
	}

	public void setCatalogoTiempoIncidenciaSeleccionada(
			String catalogoTiempoIncidenciaSeleccionada) {
		this.catalogoTiempoIncidenciaSeleccionada = catalogoTiempoIncidenciaSeleccionada;
	}

	public List<String> getCatalogoIMSSIncidencias() {
		return catalogoIMSSIncidencias;
	}

	public void setCatalogoIMSSIncidencias(List<String> catalogoIMSSIncidencias) {
		this.catalogoIMSSIncidencias = catalogoIMSSIncidencias;
	}

	public String getCatalogoIMSSIncidenciaSeleccionada() {
		return catalogoIMSSIncidenciaSeleccionada;
	}

	public void setCatalogoIMSSIncidenciaSeleccionada(
			String catalogoIMSSIncidenciaSeleccionada) {
		this.catalogoIMSSIncidenciaSeleccionada = catalogoIMSSIncidenciaSeleccionada;
	}

	public List<TipoNomina> getTiposNominas() {
		return tiposNominas;
	}

	public void setTiposNominas(List<TipoNomina> tiposNominas) {
		this.tiposNominas = tiposNominas;
	}

	public TipoNomina getTipoNominaSeleccionada() {
		return tipoNominaSeleccionada;
	}

	public void setTipoNominaSeleccionada(TipoNomina tipoNominaSeleccionada) {
		this.tipoNominaSeleccionada = tipoNominaSeleccionada;
	}

	public List<Servicios> getServicios() {
		return servicios;
	}

	public void setServicios(List<Servicios> servicios) {
		this.servicios = servicios;
	}

	public Servicios getServicioSeleccionado() {
		return servicioSeleccionado;
	}

	public void setServicioSeleccionado(Servicios servicioSeleccionado) {
		this.servicioSeleccionado = servicioSeleccionado;
	}

}
